public class Test {


    public static void main(String[] args) {

    }

    //746.使用最小花费爬楼梯
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n+1];
        dp[0] = dp[1] = 0;
        for(int i=2;i<n+1;i++) dp[i] = Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        return dp[n];
    }
    //解法儿
    public int minCostClimbingStairs2(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n];
        dp[n-1] = cost[n-1];dp[n-2] = cost[n-2];
        for(int i=n-3;i>=0;i--) dp[i] = Math.min(dp[i+1]+cost[i],dp[i+2]+cost[i]);
        return dp[0]>dp[1]?dp[1]:dp[0];
    }
    //495.提莫攻击
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int count = 0;
        count+=duration;
        for(int i=1;i<timeSeries.length;i++) {
            if(timeSeries[i-1]+duration <= timeSeries[i] ) {
                count+=duration;
            }else {
                count = count - (timeSeries[i-1]+duration-timeSeries[i]);
                count+=duration;
            }
        }
        return count;
    }


}
